使用 Sphinx 生成 PDF ######################################## 需求 **************************************** 对于 ArchLinux 来说,需要安装 ``texlive-most`` 、 ``texlive-lang`` 、``noto-fonts-cjk`` 三个包以便提供必要的编译环境和中文字体和中文等宽字体。 通过 ``fc-list :lang=zh`` 可以查看系统中安装的中文字体,使用 ``fc-list :lang=zh | grep -i mono`` 可以查看中文等宽字体。本文选择的字体为: ``Noto Sans CJK SC`` 和 ``Noto Sans Mono CJK SC`` 环境配置 **************************************** 在 Sphinx 项目的 ``conf.py`` 文件中 添加以下内容 .. code-block:: python latex_engine = 'xelatex' latex_elements = { 'papersize': 'a4paper', 'pointsize': '11pt', 'preamble': r''' \usepackage{xeCJK} \setCJKmainfont[BoldFont=Noto Sans CJK SC]{Noto Sans CJK SC} \setCJKsansfont[BoldFont=Noto Sans CJK SC]{Noto Sans CJK SC} \setCJKmonofont{Noto Sans Mono CJK SC} \XeTeXlinebreaklocale "zh" \XeTeXlinebreakskip = 0pt plus 1pt \parindent 2em \setcounter{tocdepth}{3} ''' } 现在,你可以 #. 先 ``make latex`` 生成 latex 文件,然后进入生成的 latex 文件目录下执行 ``make`` 生成 pdf。 #. 直接执行 ``make latexpdf`` 自动生成 latex 并执行 make,以便直接生成 pdf 文件 自定义 PDF 元素 **************************************** Sphinx 使用的模板文件为 ``sphinx.sty``,其中为 Sphinx 设定了很多的环境和宏。你可以在 ``latex_elements[latex_elements]`` 使用 ``/renewenvironment`` 下对宏和环境进行重新定义 .. seealso:: - `用Sphinx制作中文pdf `_ - `使用 Sphinx 撰写技术文档并生成 PDF 总结 `_ - `应用Sphinx + LaTeX + reStructuredText制作PDF文件 `_ - `详解newenvironment命令 `_